react-hook-formのcode reading
https://github.com/react-hook-form/react-hook-form/tree/e028a0ae63e926f67b28b626e35d8d86dd9f85b7
コードがめちゃくちゃ整然としていてすごいmrsekut.icon
src/logic/内にあらゆるロジックがフラットに置かれている
ファイルツリーを見るだけでどういう機能があるのか一覧できる
ほぼほぼが1ファイルに1関数の提供、みたいな構成になっている
src/logic/createFormControl.tsであらゆるロジックが使用されるルート的存在
このcreateFormControlをuseForm.tsで使ってる
reactに依存しない実装のルート部分がcreateFormControlって感じかな
useFormから提供される関数がここで定義されている
例えば、registerとかsetValueとかそういうやつ
Controller Componentの実装すごいな
code:ts
const Controller = <
TFieldValues extends FieldValues = FieldValues,
TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,
(
props: ControllerProps<TFieldValues, TName>,
) => props.render(useController<TFieldValues, TName>(props));
hooks呼んでるだけ。うまい